1
Определение умных указателей и метаданных
AI034Lesson 15
00:00

А Умный указатель — это абстрактная структура данных, которая ведёт себя как указатель, но несёт дополнительные метаданные и логику для управления данными, на которые он указывает. В то время как стандартная ссылка (&T) — это просто адрес памяти — «глупый» указатель, а паттерн умного указателя в языке Rust использует структуры для инкапсуляции указателей с пользовательскими правилами владения, контроля доступа и автоматической очистки.

Преимущество метаданных

Представьте стандартную ссылку как обычный ключ от дома: он обеспечивает доступ, но ничего больше. Умный указатель — это система ключ-карты; карта хранит метаданные (журналы доступа, разрешения, срок действия) и может автоматически запирать дверь (освобождать ресурсы) при выходе.

Стандартная ссылка (&T)[ Адрес ]Умный указатель (Box/Rc)Метаданные: счётчик ссылок / длина[ Адрес ]Феррис 🦀? Ошибка: множественное владение не работает здесь!let z = x; let y = &x; // Отсутствуют метаданные

Основная логика

В языке Rust умные указатели определяются реализацией трейтов Deref и Drop Эти трейты позволяют им вести себя как ссылки, при этом выполняя пользовательскую логику при доступе или уничтожении.

$$\text{Указатель} + \text{Метаданные} + \text{Трейты Deref/Drop} = \text{Умный указатель}$$
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>